所以我完全不熟悉正则表达式,我正在尝试使用Java的java.util.regex来查找输入字符串中的标点符号。我不知道我可能会提前得到什么样的标点符号,除了(1)!,?,.,...都是有效的标点符号,以及(2)""表示特殊的东西,并且不算作标点符号。该程序本身以伪随机方式构建短语,我想在句子经过随机过程之前去掉句末的标点符号。我可以匹配带有任何标点符号的整个单词,但匹配器只会给我该单词的索引。换句话说:Patternp=Pattern.compile("(.*\\!)*?");Matcherm=p.matcher([someinputstring]);将抓取任何结尾带有"!"的单词。
示例://ABC.->ABC//!ABC!->!ABC//A?B??C???->A?B??C这是我目前所拥有的:while(endsWithRegex(word,"\\p{P}")){word=word.substring(0,word.length()-1);}publicstaticbooleanendsWithRegex(Stringword,Stringregex){returnword!=null&&!word.isEmpty()&&word.substring(word.length()-1).replaceAll(regex,"").isEmpty();}当前的解决方案有
假设我有一个包含一些字母和标点符号的字符串数组Stringletter[]={"a","b","c",".","a"};在字母[3]中我们有“.”如何检查字符串是否为标点符号?我们知道有很多可能的标点字符(,.?!等)到目前为止我的进步:for(inta=0;a>i'mconfusedinthislineSystem.out.println("it'spunctuation");}else{System.out.println("justletter");}} 最佳答案 这是使用正则表达式的一种方法:if(Pattern.match
首先,我阅读了如下文档http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html我想找到除@',&之外的任何标点符号,但我不太明白。这里是:publicstaticvoidmain(String[]args){//Stringtobescannedtofindthepattern.Stringvalue="#`~!#$%^";Stringpattern="\\p{Punct}[^@',&]";//CreateaPatternobjectPatternr=Pattern.compile(pat
这个问题在这里已经有了答案:Fastpunctuationremovalwithpandas(4个答案)关闭4年前。我是python的新手,所以这可能是一个非常基本的问题。我正在尝试使用lambda删除pandas数据框中每一行的标点符号。我使用了以下内容,但收到错误消息。我试图避免将df转换为列表,然后将清理后的结果附加到新列表中,然后再将其转换回df。如有任何建议,我们将不胜感激!importstringdf['cleaned']=df['old'].apply(lambdax:x.replace(c,'')forcinstring.punctuation)
我正在尝试将字符串分成单词,删除空格和标点符号。我尝试使用split()方法,一次传递所有标点符号,但我的结果不正确:>>>test='hello,howareyou?Iamfine,thankyou.Andyou?'>>>test.split(',.?')['hello,howareyou?Iamfine,thankyou.Andyou?']我实际上已经知道如何使用正则表达式执行此操作,但我想弄清楚如何使用split()来执行此操作。请不要给我正则表达式解决方案。 最佳答案 如果您想根据多个分隔符拆分字符串,如您的示例所示,尽管您
我正在使用来自NLTKinPython的分词器。论坛上已经有一大堆删除标点符号的答案。但是,它们都没有同时解决以下所有问题:一行中有多个符号。例如,句子:他说,“就是这样。”因为有一个逗号后跟引号,分词器不会删除句子中的“。”。分词器将给出['He','said',',','that','s','it.']而不是['他','说','那个','s','它']。其他一些示例包括“...”、“--”、“!?”、“、”等。删除句末的符号。即句子:HelloWorld。分词器将给出['Hello','World.']而不是['Hello','World']。注意“世界”一词末尾的句点。其他一些示
我正在为NLTK停用词而苦苦挣扎。这是我的一些代码..有人能告诉我哪里出了问题吗?fromnltk.corpusimportstopwordsdefremoveStopwords(palabras):return[wordforwordinpalabrasifwordnotinstopwords.words('spanish')]palabras='''mytextishere''' 最佳答案 您的问题是字符串的迭代器返回每个字符而不是每个单词。例如:>>>palabras="Buenosdias">>>[cforcinpalabr
这个问题在这里已经有了答案:Bestwaytostrippunctuationfromastring(32个答案)关闭9年前。例如:asking="hello!what'syourname?"我可以这样做吗?asking.strip("!'?")
我有一个list['hello','...','h3.a','ds4,']这应该变成['hello','h3a','ds4']我只想删除标点符号,保留字母和数字。标点符号是string.punctuation常量中的任何内容。我知道这很简单,但我对python有点菜鸟,所以...谢谢,焦达米利奥 最佳答案 假设您的初始列表存储在变量x中,您可以这样使用:>>>x=[''.join(cforcinsifcnotinstring.punctuation)forsinx]>>>print(x)['hello','','h3a','ds4'