我想从字符串的开头和结尾去掉所有的标点符号(除了点),但不是在它的中间。
例如原始字符串:
@#%%.Hol$a.A.$%
我希望从结尾开始删除.Hol$a.A.
这个词,但不要从单词的中间删除。
另一个例子可能是字符串:
@#%%...&Hol$a.A....$%
在这种情况下,返回的字符串应为..&Hol$a.A....
,因为我们不关心是否重复允许的字符。
这个想法是在单词的开头和结尾删除所有标点符号(除了点)。单词定义为\w
和/或.
一个实际的例子是字符串'Barnes&Nobles'
。对于文本分析,将Barnes&Nobles
识别为单个实体,但没有'
如何使用Regex实现目标?
答案 0 :(得分:2)
使用这个简单易用的正则表达式:
override func viewDidLoad()
{
let img:UIImageView=UIImageView(frame: PostTable.frame)
img.image=UIImage(named: "hi.png")
PostTable.backgroundView=img
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell:UITableViewCell! = tableView.dequeueReusableCellWithIdentifier("cell")
let selectView=UIView()
selectView.backgroundColor=UIColor.clearColor()
cell.selectedBackgroundView=selectView
cell.backgroundColor=UIColor.clearColor()
cell.contentView.backgroundColor=UIColor.clearColor()
return cell!
}
它将完全匹配您想要的结果,仅此而已。
[\w.].*[\w.]
匹配任何字母数字字符和点[\w.]
匹配任何字符(通常除了换行符).*
匹配任何字母数字字符和点要更改分隔符,只需更改[\w.]
括号内的允许字符集。
Check this regex out on regex101.com
[]
答案 1 :(得分:1)
根据标点符号的含义,您可以调整以下代码:
import re
res = re.search(r"^[^.]*(.[^.]*.([^.]*.)*?)[^.]*$", "@#%%.Hol$a.A.$%")
mystr = res.group(1)
这将删除表达式中点之前和之后的所有内容。 警告,如果字符串不匹配,您必须检查结果是否不同。