如何使用 \d* 和 \w* 将 unicode 字符重复为数字和字符
How can I repeat the unicode character as the digits and characters with \d* and \w*
我有这个正则表达式:
\d*\w*[\x{0021}-\x{003F}]*
我想重复 0021 到 003f 之间的一个数字、一个字符和一个特定的代码点任意次数。
我看到使用 \d*\w* 可以生成“a1”,所以顺序无关紧要,但我只能在末尾重复代码点字符,我怎样才能使它的顺序重复并不重要,就像数字和字符一样,可以生成如下字符串:a1!a?23!sd2
使用 \w
也匹配 \d
,因此您可以从字符 class.
中省略它
请注意,这部分 {0021}-\x{003F}
也匹配数字 0-9(参见 ASCII table Hx 值 21-3F),因此也有一些重叠。
您可以将它分成 2 个 unicode 范围,但这只会使字符 class 表示法变长。
将其更改为 [A-Za-z_\x{0021}-\x{003F}]+
指定所有使用的范围,但是如果您在 php 中添加 unicode 标志,使用 \w
比 [A-Za-z]
匹配更多
要匹配 1 次或多次出现,您可以使用:
[\w\x{0021}-\x{003F}]+
看到这个regex demo and this regex demo。
我有这个正则表达式:
\d*\w*[\x{0021}-\x{003F}]*
我想重复 0021 到 003f 之间的一个数字、一个字符和一个特定的代码点任意次数。
我看到使用 \d*\w* 可以生成“a1”,所以顺序无关紧要,但我只能在末尾重复代码点字符,我怎样才能使它的顺序重复并不重要,就像数字和字符一样,可以生成如下字符串:a1!a?23!sd2
使用 \w
也匹配 \d
,因此您可以从字符 class.
请注意,这部分 {0021}-\x{003F}
也匹配数字 0-9(参见 ASCII table Hx 值 21-3F),因此也有一些重叠。
您可以将它分成 2 个 unicode 范围,但这只会使字符 class 表示法变长。
将其更改为 [A-Za-z_\x{0021}-\x{003F}]+
指定所有使用的范围,但是如果您在 php 中添加 unicode 标志,使用 \w
比 [A-Za-z]
匹配更多
要匹配 1 次或多次出现,您可以使用:
[\w\x{0021}-\x{003F}]+
看到这个regex demo and this regex demo。