编程论坛
注册
登录
编程论坛
→
VFP论坛
请教一个字符串是否包含?或?
wxzd123
发布于 2023-05-05 09:31, 237 次点击
C='ab?j' c='ks?n' c='l?lj??' 可以这样
'?'$c or '?'$c 也可以AT('?',c)>1 or ATc('?',c)>1
有没有一个函数就可以?谢谢
8 回复
#2
sdta
2023-05-05 10:12
chrtranc() &&判断长度是否有变化
c='l?lj??'
if lenc(chrtranc(c, "??", space(0))) < lenc(c)
? "有?或?"
endif
[此贴子已经被作者于2023-5-5 10:15编辑过]
#3
csyx
2023-05-05 11:16
如果仅就处理全/半角问号,用 '?'$c or '?'$c 就是最佳方案了,速度最快
其他情况,可考虑先把全角都转成半角,或者半角转成全角,再判断:
? '?' $ strconv('半角问号?', 1) && 转成全角字符判断
? '?' $ strconv('全角问号?', 2) && 转成半角字符判断
[此贴子已经被作者于2023-5-5 11:19编辑过]
#4
foxfans
2023-05-05 11:19
if ALINES(_tmp,[l?lj??],2,"?","?")>1
?"YES"
endif
#5
laowan001
2023-05-05 13:31
以下是引用
sdta
在2023-5-5 10:12:59的发言:
chrtranc() &&判断长度是否有变化
c='l?lj??'
if lenc(chrtranc(c, "??", space(0))) < lenc(c)
? "有?或?"
endif
如果字符串是'l?lj??l j',长度也会不一样
4楼方法可行
#6
吹水佬
2023-05-05 14:52
测试:
1、完整的宽字符串
c = "#靠"
? AT("?",c) > 0 && .t.
? ATC("?",c) > 0 && .t.
? "?"$c && .f.
? lenc(chrtranc(c, "?", space(0))) < lenc(c) && .f.
2、不完整的宽字符串(从数据流截取的字符串,如存在半个宽字符)
c = SUBSTR("#靠",2)
? AT("?",c) > 0 && .t.
? ATC("?",c) > 0 && .t.
? "?"$c && .t.
? lenc(chrtranc(c, "?", space(0))) < lenc(c) && .t.
#7
wxzd123
2023-05-08 09:51
谢谢各位老师指点,但ALINES(_tmp,[l?lj??],2,"?","?")没明白后面,2,"?","?"参数作用?
#8
sdta
2023-05-08 10:48
只有本站会员才能查看附件,请
登录
#9
wxzd123
2023-05-08 14:42
谢谢
1