标签: character-class

正则表达式\ p {L}和\ p {N}

我是正则表达式的新手,并且给出了以下正则表达式:

(\p{L}|\p{N}|_|-|\.)*
Run Code Online (Sandbox Code Playgroud)

我知道*的意思和| 意思是"或"而那个\逃脱.

但我不知道是什么\p{L}\p{N}意味着什么.我搜索了Google,没有结果......

有人能帮我吗?

regex xml character-class

94
推荐指数
2
解决办法
9万
查看次数

为什么这种模式在egrep中不起作用?

为什么我不能匹配字符串

"1234567-1234567890"
Run Code Online (Sandbox Code Playgroud)

使用给定的正则表达式

\d{7}-\d{10}
Run Code Online (Sandbox Code Playgroud)

egrep从这样的外壳:

egrep \d{7}-\d{10} file
Run Code Online (Sandbox Code Playgroud)

regex grep character-class

56
推荐指数
4
解决办法
3万
查看次数

如何从课程中排除某些字符?

假设我想匹配"单词"字符(\w),但排除"_",或匹配空白字符(\s),但排除"\ t".我怎样才能做到这一点?

regex perl character-class

32
推荐指数
1
解决办法
2万
查看次数

替换不在范围内的所有字符(Java String)

如何替换不符合条件的字符串中的所有字符.我在使用NOT运算符时遇到了麻烦.

具体来说,我试图删除所有不是数字的字符,到目前为止我已经尝试过了:

String number = "703-463-9281";
String number2 = number.replaceAll("[0-9]!", ""); // produces: "703-463-9281" (no change)
String number3 = number.replaceAll("[0-9]", "");  // produces: "--" 
String number4 = number.replaceAll("![0-9]", ""); // produces: "703-463-9281" (no change)
String number6 = number.replaceAll("^[0-9]", ""); // produces: "03-463-9281"
Run Code Online (Sandbox Code Playgroud)

java regex character-class

26
推荐指数
2
解决办法
3万
查看次数

使用Java regexp匹配(例如)Unicode字母

StackOverflow上有许多问题和答案,假设"字母"可以在正则表达式中匹配[a-zA-Z].然而,对于Unicode,还有更多的字符,大多数人会认为是一个字母(所有希腊字母,Cyrllic ..还有更多.Unicode定义了许多块,每个可能有"字母".

Java定义 为像alpha字符这样的东西定义了Posix类,但是它被指定为仅使用US-ASCII.预定义的字符类定义要包含的单词[a-zA-Z_0-9],这也排除了许多字母.

那么如何正确匹配Unicode字符串呢?是否有其他图书馆可以做到这一点?

java regex unicode character-class character-properties

14
推荐指数
2
解决办法
2万
查看次数

从字符类中排除字符

是否有一种简单的方法来匹配类中除了某些特定组之外的所有字符?例如,如果在我可以使用\ w来匹配所有unicode单词字符集的语言中,有没有办法从该匹配中排除像下划线"_"这样的字符?

只有想到的想法是在每个角色周围使用负向前瞻/后面,但是当我有效地想要将角色与正匹配和负匹配匹配时,这似乎比必要更复杂.例如,如果&是一个AND运算符,我可以这样做......

^(\w&[^_])+$
Run Code Online (Sandbox Code Playgroud)

regex set-difference character-class

14
推荐指数
5
解决办法
6377
查看次数

(相当于)"字符类中的反向引用"的一般方法?

在Perl的正则表达式,如表达式\1,\2等通常解释为"反向引用"到先前捕获的组,但不因此当\1,\2等字符类内出现.在后一种情况下,它\被视为转义字符(因此\1只是1等).

因此,如果(例如)想要匹配一个字符串(长度大于1),其第一个字符与其最后一个字符匹配,但不出现在字符串中的任何其他位置,则以下正则表达式不会:

/\A       # match beginning of string;
 (.)      # match and capture first character (referred to subsequently by \1);
 [^\1]*   # (WRONG) match zero or more characters different from character in \1;
 \1       # match \1;
 \z       # match the end of the string;
/sx       # s: let . match newline; x: ignore whitespace, allow comments
Run Code Online (Sandbox Code Playgroud)

工作,因为它匹配(例如)字符串'a1a2a':

  DB<1> ( …
Run Code Online (Sandbox Code Playgroud)

regex perl backreference character-class

13
推荐指数
1
解决办法
1021
查看次数

字符类减法,从Java语法转换为RegexBuddy

Java使用哪个正则表达式引擎?

在像RegexBuddy这样的工具中使用

[a-z&&[^bc]]
Run Code Online (Sandbox Code Playgroud)

Java中的表达式很好,但在RegexBuddy中它还没有被理解.

事实上,它报道:

匹配下面列表中的单个字符 [a-z&&[^bc]

  • 范围在a和之间的字符z:a-z
  • 其中一个人物&[^bc:&&[^bc
  • ]字面匹配字符:]

但我想匹配一个字符,az与一个不是b或的字符相交c

java regex regexbuddy character-class

12
推荐指数
1
解决办法
4041
查看次数

为什么字符类比交替更快?

似乎使用一个字符类比一个例子中的交替更快,比如:
[abc]vs (a|b|c)
我听说它被推荐,并且使用Time::HiRes我验证的简单测试(慢10倍).在捕获括号产生差异的情况下
也使用(?:a|b|c)不会改变结果.
但我不明白为什么.我认为这是因为回溯,但我在每个位置看到它的方式有3个字符比较所以我不确定回溯是如何影响交替的.这是实施交替性质的结果吗?

regex perl performance character-class regex-alternation

12
推荐指数
2
解决办法
1082
查看次数

如何匹配Unicode元音?

什么字符类或Unicode属性将匹配Perl 中的任何Unicode元音?

错误答案:[aeiouAEIOU].(这里的讲道,洗衣清单中的第24项)

perluniprops仅为Hangul和印度语脚本提及元音.

让我们抛开一个元音是什么的问题.是的,i在某些情况下可能不是元音.所以,任何可以作为元音的角色都可以.

perl character-class

8
推荐指数
1
解决办法
562
查看次数