java - 正则表达式可能有一个下划线,然后至少有一个合法字符

标签 java regex

我正在尝试定义一种可能允许一个下划线的模式,然后它必须具有集合 "[\\w_]" 中的一个或多个合法字符(即,一个单词或下划线)。因此 "_" 应该返回 false,但是 "__""a""\_a""a_" 应该全部返回 true。 我尝试过使用该模式

(_)?[\\w_]+

但它在 _ 上返回 true。你知道为什么吗?

最佳答案

\w 已经包含下划线字符,您所要做的就是确保如果子字符串以下划线开头还有其他单词字符:

_\\w+|[^\\W_]\\w*

或者不以交替方式开始模式,您可以这样做:

\\w(?:(?<=_)\\w+|(?<!_)\\w*)

关于java - 正则表达式可能有一个下划线,然后至少有一个合法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44472186/

相关文章:

java - 如何更改j2me netbeans 6.9模拟器

java - 在Java中的方法语句中返回子字符串(n,m)的正确方法是什么?

java - in 无法应用于android studio

java - 如何转义java正则表达式|运算符(operator)

Javascript正则表达式匹配数字零或任何大于零的整数

regex - 使用正则表达式从 R 中的字符串中获取数据

java - 合并正则表达式中的两个条件

java - while 循环不打印消息

java - 如何在java中对字符串类型的日期进行排序

php - 正则表达式 $1、$2 等