Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式在回溯中只能使用1个量词(需要2个)_Java_Regex_Regex Lookarounds - Fatal编程技术网

Java正则表达式在回溯中只能使用1个量词(需要2个)

Java正则表达式在回溯中只能使用1个量词(需要2个),java,regex,regex-lookarounds,Java,Regex,Regex Lookarounds,我不能在回顾中使用超过1个量词 我创建的正则表达式需要执行以下操作: -1d测试-->删除1d并保留“测试” -测试1d-->删除1d并保留“测试” -1d测试1d-->删除前1d并保留“测试1d” 我想要的正则表达式不起作用: String string = "11d test 1d"; String[] parts = string.split("(^\\d+[a-zA-Z]\\s)|(\\s\\d+[a-zA-Z]$(?<!^\\d+[a-zA-Z]\\s.*

我不能在回顾中使用超过1个量词

我创建的正则表达式需要执行以下操作:
-1d测试-->删除1d并保留“测试”
-测试1d-->删除1d并保留“测试”
-1d测试1d-->删除前1d并保留“测试1d”

我想要的正则表达式不起作用:

String string = "11d test 1d";

String[] parts = 
          string.split("(^\\d+[a-zA-Z]\\s)|(\\s\\d+[a-zA-Z]$(?<!^\\d+[a-zA-Z]\\s.*))");
有效的正则表达式(但仅适用于固定长度的字符串,计算点):

两个量词(在回望中)是+(在\d之后)和*(在\s之后)

如果你想自己测试它,你可以在


谢谢你帮助我

您尝试过使用replaceFirst()吗


如果你给出了一个空链接,那么CTRL+S组合键是否会避开特定的链接(确保不仅仅是网站名称)你是否尝试过使用replaceFirst。。?string1.replaceFirst(模式.引号(“1d”),“”)@NuthanKumar很有效,非常感谢。我没有想到这一点:facepalm:(我确实使用了我自己的表达式而不是
模式。引用(“1d”)
,因为它使用的不仅仅是一个1和一个d)所以,你想删除第一个
?然后您需要
str.replaceFirst(“\\s*\\d+\\p{Alpha}+”,”)
。如果这个单词必须是一个完整的单词,请使用
“\\s*\\b\\d+\\p{Alpha}+\\b”
@Banjer\u HD,我会将其作为答案发布,请接受
test
String string = "11d test 1d";

String[] parts = 
         string.split("(^\d+[a-zA-Z]\s)|(\s\d+[a-zA-Z]$(?<!^\d+[a-zA-Z]\s.......))");
test 1d
string1.replaceFirst("(^\d+[a-zA-Z]\s)|(\s\d+[a-zA-Z]$)", "");