Regex 正则表达式模式以字符串开头,以空格结尾
我正试着从长线中得到一部分线。 原始行看起来像Regex 正则表达式模式以字符串开头,以空格结尾,regex,scala,Regex,Scala,我正试着从长线中得到一部分线。 原始行看起来像 val j=“(…),昵称=sally,25岁,学生,来自西班牙”(…)” 我只想得到这个 我认为正则表达式模式应该是 pattern=“昵称=([a-zA-Z0-9,])*(.+)\s$ 但它不像我想要的那样工作 有什么好的建议吗?试试看 pattern= "nickname\=([^\s])*" 试一试 模式昵称=([a-zA-Z0-9,])*(.+)\s$未获得正确匹配的原因是: 昵称不会在组中捕获,并且仅存在多个匹配
val j=“(…),昵称=sally,25岁,学生,来自西班牙”(…)”
我只想得到这个
我认为正则表达式模式应该是
pattern=“昵称=([a-zA-Z0-9,])*(.+)\s$
但它不像我想要的那样工作
有什么好的建议吗?试试看
pattern= "nickname\=([^\s])*"
试一试
模式
昵称=([a-zA-Z0-9,])*(.+)\s$
未获得正确匹配的原因是:
- 昵称不会在组中捕获,并且仅存在多个匹配项
- 像这样重复整个捕获组
将只捕获上一次迭代的值,在本例中为a([a-zA-Z0-9,])*
,
匹配一个空格字符,然后断言字符串的结尾\s$
\b(nickname=[a-zA-Z0-9,]+)(.+)\s$
如果您不需要第二个捕获组,只想获得匹配项:
\bnickname=[a-zA-Z0-9,]+
或结尾不带逗号:
\bnickname=[a-zA-Z0-9]+(?:,[a-zA-Z0-9]+)+
例如,字符串末尾带有空格字符:
val regex: Regex = """\bnickname=[a-zA-Z0-9]+(?:,[a-zA-Z0-9]+)+""".r
val j = """(...), nickname=sally,25,student, from="Spain", (...) """
regex.findFirstIn(j).foreach(println)
输出
nickname=sally,25,student
模式
昵称=([a-zA-Z0-9,])*(.+)\s$
未获得正确匹配的原因是:
- 昵称不会在组中捕获,并且仅存在多个匹配项
- 像这样重复整个捕获组
将只捕获上一次迭代的值,在本例中为a([a-zA-Z0-9,])*
,
匹配一个空格字符,然后断言字符串的结尾\s$
\b(nickname=[a-zA-Z0-9,]+)(.+)\s$
如果您不需要第二个捕获组,只想获得匹配项:
\bnickname=[a-zA-Z0-9,]+
或结尾不带逗号:
\bnickname=[a-zA-Z0-9]+(?:,[a-zA-Z0-9]+)+
例如,字符串末尾带有空格字符:
val regex: Regex = """\bnickname=[a-zA-Z0-9]+(?:,[a-zA-Z0-9]+)+""".r
val j = """(...), nickname=sally,25,student, from="Spain", (...) """
regex.findFirstIn(j).foreach(println)
输出
nickname=sally,25,student
试试这个:昵称=[\w,]+(?=,)试试这个:昵称=[\w,]+(?=,)