2
我有* TEX文件包含:列表需要檢查每一個在一個字符串
__DATA__
"\left({H^1}, \int {H^2}\right)"
"\left({H^1},\bigoplus{H^2}\right)"
"\left({H^1},{H^2}\right)"
"\left({H^1}, \bigvee {H^2}\right)"
上面* TEX內容我要檢查我所下面列出的數組元素的列表:如果任何一個元素匹配,然後保留該行:如果沒有一個元素匹配,那麼我需要將\left(
替換爲(
和\right)
,並將其替換爲)
。
我的數組:
int frac prod sum oint bigvee bigcup bigcap bigoplus bigotimes
預期輸出:
"\left({H^1}, \int {H^2}\right)"
"\left({H^1},\bigoplus{H^2}\right)"
"({H^1},{H^2})"
"\left({H^1}, \bigvee {H^2}\right)"
我曾嘗試:
my @mathenv = qw(int frac prod sum oint bigvee bigcup bigcap bigoplus bigotimes);
while(<DATA>) { $mathchk .= $_; }
$boolChk = 'False';
$mathchk=~s#\\left\(((?:(?!\\(?:left|right)).)*)\\right\)# my $fulcnt=$&; my $Content=$1;
foreach my $singlemath(@mathenv)
{
\#print "S: -$singlemath-\n";
if($fulcnt=~m/\\$singlemath/gi)
{ $boolChk = 'True'; }
}
print ": $boolChk \t$fulcnt\n"; system 'pause';
if($boolChk eq 'True') { }
if($boolChk eq 'False') { $fulcnt = "\($Content\)"; }
($fulcnt);
#esg;
#print $mathchk;
__DATA__
"\left({H^1}, \int {H^2}\right)"
"\left({H^1},\bigoplus{H^2}\right)"
"\left({H^1},{H^2}\right)"
"\left({H^1}, \bigvee {H^2}\right)"
我能不能夠得到正確的輸出,因此,如果有人指導我在哪裏我必須修改上面的代碼。提前致謝。