Mở đầu

Hôm nay mình sẽ mở rộng vấn đề với node TrimWhitespace được tạo ra như thế nào nhé.

Trước tiên để vào bài thì ta nên hiểu biểu thức chính quy là gì trước đã. Biểu thức chính quy (Regular expression) được định nghĩa một khuôn mẫu (pattern) tìm kiếm chuỗi. Nó có thể được sử dụng tìm kiếm, sửa đổi, và thao tác trên văn bản. Khuôn mẫu được định nghĩa bởi biểu thức chính quy có thể khớp (match) một hoặc một vài lần, hoặc không khớp với một văn bản cho trước.

Biểu thức chính quy được áp dụng chuẩn cho nhiều ngôn ngữ lập trình và dường như là ít thay đổi.

Biểu thức chính quy (Regular Expression) thường được viết tắt là Regex

Bảng mô tả ngắn gọn các regex thông dụng :

regularexpressions 7

Sử dụng trong Dynamo

TrimWhitespace trong Dynamo được sử dụng để xóa bỏ các khoảng trắng đầu và cuối một chuỗi.

TrimWhiteSpace

Viết Script Trong Dynamo

Dựng lại node TrimWhitespace

import System
str = "   Hello Word "
OUT = str.Trim()

Kết quả

TrimWhiteSpace1

Chính vì mình không muốn sử dụng dài dòng thêm các node phụ và muốn loại bỏ luôn cả khoảng trắng ngay giữa mỗi chữ nữa, nên mới lòi ra bài viết cụ thể như thế này.Lúc này mình sẽ bắt đầu nghĩ ngay đến một biểu thức chính quy.

Mình sẽ sử dụng quy tắt viết biểu thức chính quy này :

\s : Ký tự khoảng trắng, viết ngắn gọn cho [ \t\n\x0b\r\f]

+ : Xuất hiện 1 hoặc nhiều lần, viết ngắn gọn cho {1,}

Cuối cùng mình thử viết một cú pháp loại trừ khoảng trắng đơn giản :

Python

import re

s = '  Hello  World   '

OUT = re.sub(r"\s+", "", s)

Csharp

using System.Text.RegularExpressions;
private static Regex Whitespaces = new Regex(@"\s+");
public static string[] TrimWhitespace(this string input)
        {
            return Whitespaces.Split(input.Trim());
        }

Kết quả

TrimWhiteSpace2

Một số tài liệu để bạn xem thêm

Regular_expression

regularexpressionsSheet