草庐IT

java - 如何从字符串java中提取 double 或整数

我正在编写这段代码,其中用户输入一个包含数字的字符串,例如H3.07LLomynam3isbob12输出应该是3.07,3.0,12.0我已经设法得到一个正则表达式来查找double,但我不知道如何查找整数。这是我的正则表达式:(-)?(([^\\d])(0)|[1-9][0-9]*)(.)([0-9]+)我对正则表达式很陌生。我尝试添加|[0-9]|但无论我把它放在当前正则表达式中的什么地方,我都会把它弄乱 最佳答案 您可以通过用空格替换非数字字符、修剪然后在空格处拆分来在一行中完成此操作。String[]numbers=str.

java - 如何替换引号外的单词

我想在Java中使用str.replaceAll替换引号外的字符串,但不影响引号内的单词如果我用Pie替换Apple:输入:苹果“苹果苹果苹果”期望的输出:馅饼“AppleAppleApple”请注意引号内的单词未被修改这将如何完成?所有帮助表示赞赏! 最佳答案 使用先行搜索Apple以确保它没有被引号包围:(?=(([^"]*"){2})*[^"]*$)Apple并替换为:PieRegExDemo更新:根据下面的评论,您可以使用:代码:Stringstr="Apple\"Apple\"";Stringrepl=str.replac

java - 如何匹配字符串中间或末尾的字符但只匹配一次

我正在尝试使用String.matches()匹配Java中的字符串。可接受的值为ABC321,ABC321/OTHER888或ABC321/但是/ABC321或ABC321/OTHER888/不应该匹配。所以/可以在字符串的中间或末尾,但不能在开头,它应该只出现一次。这是我设法做到的最接近的正则表达式:myString.matches("^[A-Za-z0-9]+/?[A-Za-z0-9]+/?$");但问题是/可能会出现多次。那么如何改进正则表达式以允许/仅一次? 最佳答案 您的正则表达式的问题是您允许/至少使用/?两次。您只需

Java - 模式匹配但未能捕获

这是我的数据集中的三个样本行:||||featureB>=16104.33:18873.52(1/0)|featureA>=17980.32featureC=ABCBLAHBLAHblA'H$blah4/blahblah我正试图想出一个模式匹配器来捕获以下内容:功能名称关系(=,>=,特征值(可以是数字和/或字符的混合,但不能包含冒号)result(冒号之后和括号之前的值-冒号和结果是可选的,可能不会出现在某些行上)我想出了以下模式,但它未能捕获特征值:Pattern.compile("(?:\\|)*(.*?)(>?=|所以基本上我的目标是让group(1)包含特征名称,group(

java - 循环遍历 RegEx 匹配并替换当前匹配

考虑以下字符串:Heorderedapizzawithanchovies.Unfortunately,itwasn'tthethinghewanted.Besides,pizzawithmushroom,pepperoniandanchoviesismuchbetterthanthenormalpizzawithanchovies.假设您需要将pizzawith(ingredients)更改为pizzawith(ingredients)onathincrust。为此,我设置了一个正则表达式:(?i:pizzawith[a-zA-Z,\s]*?anchovies)这会捕获三个匹配项。然后

java - 查找以哈希开头和结尾的句子

我正在研究检测以主题标签开头和结尾的句子。截至目前,我只有用于查找单词的代码,这是该机制的一部分。如何根据以下情况找到句子。案例一:Hello,#howareyou#today.在这种情况下,我想检测你好吗。现在如果只有一个单词,那么上面的情况就可以忽略了。案例二:Hello,#howareyou#today.在这种情况下,只找到单词#how和#today,我已经在处理这些单词。这里没有句子,因为单词不以标签结尾。代码:@OverridepublicListfindHashTags(Stringtext){if(text==null){returnnewArrayList();}Str

java - 如何在 java 中使用正则表达式查找字符串中最后一次出现的字符集?

我需要找到字符串中字符集的最后一个索引。假设字符集是x,y,z,字符串是VereadorLuizPaulyHome,那么我需要的索引是18。因此,为了找到索引,我创建了一个带有DOTALL标志和greedyquantifier的模式作为(?s).*(x|y|z)。当模式应用于该字符串(多行)时,我可以从起始组中找出索引。代码:intfindIndex(Stringstr){intindex=-1;Patternp=Pattern.compile("(?s).*(x|y|z)");Matcherm=regex.matcher(str);if(m.find()){index=m.start

java - 在 Java 中使用正则表达式从字符串中提取两个 double 值

我正在逐行读取文件,需要从中提取纬度和经度。这是线条的样子:DE83543RottamInnBayernBYOberbayernLandkreisRosenheim47.98312.1278DE21147HamburgHamburgHHKreisfreieStadtHamburg53.5510可以肯定的是,除了代表double的点外,没有其他点被数字包围。不幸的是,有些值没有点,因此最好检查字符串末尾的数字。感谢您的帮助! 最佳答案 如果可以使用java.lang.String#split()//SplitbytabStringva

java - 模式中的规范等价

我指的是此处列出的测试工具http://docs.oracle.com/javase/tutorial/essential/regex/test_harness.html我对类所做的唯一更改是模式创建如下:Patternpattern=Pattern.compile(console.readLine("%nEnteryourregex(Pattern.CANON_EQset):"),Pattern.CANON_EQ);作为http://docs.oracle.com/javase/tutorial/essential/regex/pattern.html的教程建议我将模式或正则表达式作

java - 如何在没有正则表达式的情况下解析字符串

我目前正在尝试创建一个能够解释动态字符串的软件组件,例如:%TO_LOWER%(%DELETE_WHITESPACES%("ASAMPLETEXT"))这将导致这个字符串:asampletext我希望能够定义一组可用的函数,带有语义参数等。我已经(或多或少)知道如何使用正则表达式来做到这一点。我的问题是:为此目的,词法分析/解析方式是否比正则表达式更好,还是我应该只使用正则表达式而忘记它?Java中是否已经存在这样的库?你知道任何显示一些示例解析/词法分析算法的教程吗?谢谢! 最佳答案 Islexing/parsingwaybett